﻿#ifndef ABSTRACTCOMPONENT_H
#define ABSTRACTCOMPONENT_H

#include <QString>

class AbstractComponent
{
public:
    explicit AbstractComponent(QString cName);

    virtual void operation(int level = 0) = 0;

    virtual void add(AbstractComponent* component) = 0;

    virtual void remove(AbstractComponent* component) = 0;

    virtual AbstractComponent* getComponent(int i) = 0;

    QString getName();

private:
    QString m_name;
};

#endif // ABSTRACTCOMPONENT_H
